package common.model.Entity.libraryEntity.enums;

/**
 * 图书馆用户账号状态枚举。
 *
 * <p>标识用户账户在系统中的可用性，决定其能否正常享受借阅、预约等服务。</p>
 */

public enum AccountStatus {

    /**
     * 正常可用，允许借阅、预约等操作
     */
    ACTIVE,

    /**
     * 已被冻结，可能由于欠费、违规等原因，禁止借阅
     */
    SUSPENDED;

    /**
     * 根据字符串值获取对应的 {@code AccountStatus} 枚举。
     *
     * <p>忽略大小写匹配，若无匹配则返回 {@code null}。</p>
     *
     * @param value 字符串值
     * @return 对应的 {@code AccountStatus}，若无匹配则返回 {@code null}
     */

    public static AccountStatus fromString(String value) {
        if (value != null) {
            for (AccountStatus status : AccountStatus.values()) {
                if (status.name().equalsIgnoreCase(value)) {
                    return status;
                }
            }
        }
        return null;
    }
}